package com.eedi.framework.event.service;

import com.eedi.framework.event.controller.vo.SysEventConsumerCreateReq;
import com.eedi.framework.event.controller.vo.SysEventConsumerResp;
import com.eedi.framework.event.controller.vo.SysEventObsOrgResp;
import com.eedi.framework.common.event.annotations.event.EediEventPoint;
import com.eedi.framework.event.controller.vo.*;

import java.util.Collection;
import java.util.List;

/**
 * 事件服务
 */
public interface SysEventService {


    /**
     * 根据事件点获取关注信息
     *
     * @param point 事件点
     * @return 关注列表
     */
    List<SysEventObsOrgResp> getObsOrg(EediEventPoint point);

    /**
     * 创建待消费信息
     */
    void createConsumer(String msg, String sysEventObsOrgId);

    /**
     * 创建待消费信息
     */
    void createConsumer(Collection<SysEventConsumerCreateReq> req);

    /**
     * 获得待处理信息
     * 每次最多10条返回
     */
    List<SysEventConsumerResp> getConsumerOnCreated();

    /**
     * 设置信息为处理中
     *
     * @param sysEventConsumerId id
     */
    void setStatusToHandle(String sysEventConsumerId);

    /**
     * 设置信息为异常
     *
     * @param sysEventConsumerId ids
     */
    void setStatusToException(String sysEventConsumerId,String msg);

    /**
     * 提交信息
     *
     * @param sysEventConsumerId id
     */
    void setStatusToSubmitted(String sysEventConsumerId,String msg);
}
